{"version":3,"file":"static/chunks/pages/tours/[slug]-1485afa85f1f2438.js","mappings":"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","sources":["webpack://_N_E/?0234","webpack://_N_E/./api/updateBookingReviewStatus.ts","webpack://_N_E/./components/TourPage/TourBasics.tsx","webpack://_N_E/./components/TourPage/Included.tsx","webpack://_N_E/./components/TourPage/WhatYouWillSeeSection.tsx","webpack://_N_E/./components/TourPage/NeedToKnow.tsx","webpack://_N_E/./utils/transformReview.tsx","webpack://_N_E/./pages/tours/[slug].tsx","webpack://_N_E/./shared-components/AttractionCard/ShareButton.tsx","webpack://_N_E/./shared-components/SwipperArrows/SwipperArrows.tsx","webpack://_N_E/./utils/googleTransaction.ts","webpack://_N_E/./utils/useUpdateQueryParams.ts","webpack://_N_E/./node_modules/swiper/swiper-bundle.css","webpack://_N_E/"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/tours/[slug]\",\n function () {\n return require(\"private-next-pages/tours/[slug].tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/tours/[slug]\"])\n });\n }\n ","import { gql } from '@apollo/client';\n\nconst UPDATE_BOOKING_REVIEW_STATUS = gql`\n mutation UPDATE_BOOKING_REVIEW_STATUS($id: String!, $status: String!) {\n review: update_logs_review_message_record(\n where: { booking_id: { _eq: $id } }\n _set: { review_status: $status }\n ) {\n returning {\n reviewStatus: review_status\n }\n }\n }\n`;\nexport const FETCH_BOOKING_REVIEW= gql`\nquery FETCH_BOOKING_REVIEW($id: String!) {\n review: logs_review_message_record(where: { booking_id: { _eq: $id } }) {\n reviewStatus: review_status\n }\n}\n`\n\ninterface UPDATE_BOOKING_REVIEW_STATUS_INTERFACE {\n review: {\n returning: [\n {\n reviewStatus: REVIEW_STATUS_ENUM;\n }\n ];\n };\n}\ninterface UPDATE_BOOKING_REVIEW_STATUS_INTERFACE {\n review: {\n returning: [\n {\n reviewStatus: REVIEW_STATUS_ENUM;\n }\n ];\n };\n}\nenum REVIEW_STATUS_ENUM {\n GOOGLE_REVIEW = 'GOOGLE_REVIEW',\n WEBSITE_FEEDBACK = 'WEBSITE_FEEDBACK',\n PENDING = 'PENDING'\n}\nexport default UPDATE_BOOKING_REVIEW_STATUS;\nexport type { UPDATE_BOOKING_REVIEW_STATUS_INTERFACE };\n","import Image from 'next/image';\nimport React from 'react';\nimport styled from 'styled-components';\n\ninterface TOUR {\n maxPeople: number;\n duration: number;\n mobile?: boolean;\n name: string;\n}\n\nconst StyleDiv = styled.div`\n display: flex;\n flex-wrap: nowrap;\n gap: 1rem;\n @media (max-width: 650px) {\n margin-bottom: 10px;\n gap: 0.8rem;\n }\n @media (max-width: 450px) {\n margin-bottom: 10px;\n gap: 0.5rem;\n }\n`;\n\nconst TourBasics = ({ maxPeople, duration, mobile, name }: TOUR) => {\n const durationInMinutes = duration;\n const durationInHours = durationInMinutes / 60;\n\n // Format to avoid unnecessary decimals\n const formattedDuration = Number.isInteger(durationInHours)\n ? durationInHours\n : durationInHours.toFixed(1);\n const showItems = [\n {\n icon: '/clock_icon.svg',\n text: `${formattedDuration}\n ${Number(formattedDuration) > 1 ? 'Hours' : 'Hour'}`,\n key: 'duration'\n },\n {\n icon: '/persons_icon.svg',\n text: `Up to ${maxPeople} people`,\n key: 'people'\n },\n ...(!name?.includes('Walking') &&\n name !== 'Saint John Reversing Falls Rapids Thrill Ride Jetboat'\n ? [\n {\n icon: '/transport_icon.svg',\n text: 'Hotel Pick-up',\n key: 'pickup'\n }\n ]\n : [])\n ];\n\n return (\n \n {showItems.map((item, index) => (\n \n \n \n {item.text}\n \n \n ))}\n \n );\n};\n\nexport default TourBasics;\n","/* eslint-disable react/no-unescaped-entities */\nimport React, { useEffect, useRef, useState } from 'react';\nimport Image from 'next/image';\n\nimport dynamic from 'next/dynamic';\nimport { Rating } from 'react-simple-star-rating';\nimport getTimeAgo from '../../utils/getDateTime';\nimport { useMediaQuery } from '../../hooks/mediaQuery';\nimport { Attraction, BestReview } from '../../types/pages/tour';\nimport { City } from '../../types/pages/things-to-do';\nconst DateAndPax = dynamic(() => import('../CalendarAndPax/DateAndPax'));\n\ntype INCLUDED = {\n data: string[];\n attractions?: Attraction[];\n longDescription: string;\n rezdyId: string;\n reviewState: {\n average: number;\n total: number;\n };\n bestReview: BestReview | undefined;\n updateTourContext: () => void;\n duration: number;\n privateTour: boolean;\n tourId: string;\n adult: number | null;\n infant: number | null;\n child: number | null;\n name: string;\n slug?: string;\n shortDescription: string;\n city?: City | undefined;\n bookingCutOffTime: string | null;\n showPax?: boolean;\n};\n\nconst Included = ({\n rezdyId,\n updateTourContext,\n privateTour,\n tourId,\n adult,\n infant,\n child,\n name,\n bestReview,\n city,\n slug,\n showPax\n}: INCLUDED) => {\n const ref = useRef(null);\n const containerRef = useRef(null);\n const [stopPosition, setStopPosition] = useState(0);\n const mediaQuery = useMediaQuery(944);\n useEffect(() => {\n if (containerRef.current) {\n const containerHeight = containerRef.current.offsetHeight;\n const stopPosition = containerHeight - 900;\n\n setStopPosition(stopPosition);\n }\n }, []);\n\n return (\n <>\n
\n
\n
\n \n
\n {bestReview && (\n
\n
\n \n 300\n ? 'min-h-[450px]'\n : 'min-h-[250px]'\n }`}\n >\n

\n {bestReview.traveller}\n

\n
\n \n {getTimeAgo(bestReview?.created_at)}\n
\n
\n

\n \n {bestReview?.review}\n \n \n

\n
\n
\n
\n
\n
\n )}\n
\n\n {showPax && (\n
\n \n
\n )}\n \n \n );\n};\n\nexport default Included;\n","import { useState, useRef, useEffect } from 'react';\nimport Image from 'next/image';\nimport Link from 'next/link';\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport { Navigation, type Swiper as SwiperType } from 'swiper';\nimport 'swiper/swiper-bundle.css';\nimport 'swiper/css';\nimport {\n LeftSwipperArrows,\n RightSwipperArrows\n} from '../../shared-components/SwipperArrows/SwipperArrows';\nimport { Attraction, Product } from '../../types/pages/tour';\nimport { optimizeImageUrl } from '../../utils/videoLinkOptimize';\n\nexport const WhatYouWillSeeSection = ({ product }: { product: Product }) => {\n const [isLastSlide, setIsLastSlide] = useState(false);\n const [isFirstSlide, setIsFirstSlide] = useState(true);\n const [swiperInstance, setSwiperInstance] = useState(null);\n const prevRef = useRef(null);\n const nextRef = useRef(null);\n\n useEffect(() => {\n setIsFirstSlide(true);\n setIsLastSlide(false);\n\n if (swiperInstance && typeof swiperInstance.slideTo === 'function') {\n setTimeout(() => {\n try {\n swiperInstance.slideTo(0, 0);\n } catch (error) {\n console.warn('Failed to reset slider position:', error);\n }\n }, 0);\n }\n }, [product]);\n\n const onBeforeInit = (Swiper: SwiperType): void => {\n if (typeof Swiper.params.navigation !== 'boolean') {\n const navigation = Swiper.params.navigation;\n if (navigation) {\n navigation.prevEl = prevRef.current;\n navigation.nextEl = nextRef.current;\n }\n }\n };\n\n const handleSlideChange = (swiper: SwiperType) => {\n setIsFirstSlide(swiper.isBeginning);\n setIsLastSlide(swiper.isEnd);\n };\n\n return (\n
\n
\n \n What you'll see{' '}\n \n {product?.attractions?.length > 1 && (\n
\n
\n \n
\n
\n \n
\n
\n )}\n
\n\n \n {product.attractions.length > 0 ? (\n product?.attractions?.map((attraction: Attraction) => {\n const { alt, url } = attraction?.heroMedia[0] || {};\n return (\n \n \n
\n
\n \n
\n
\n

\n {attraction.name}\n

\n

\n {attraction?.cardSnippet?.length > 100\n ? `${attraction.cardSnippet.slice(0, 100)}...`\n : attraction.cardSnippet}\n

\n
\n
\n \n
\n );\n })\n ) : (\n
\n No Attractions to show\n
\n )}\n \n
\n );\n};\n\nexport default WhatYouWillSeeSection;\n","import React from 'react';\n\ninterface NeedToKnowProps {\n info: [string] | string[];\n heading: string;\n showTimeline?: boolean;\n}\n\nexport const NeedToKnow = ({\n info,\n heading,\n showTimeline\n}: NeedToKnowProps) => {\n return (\n
\n

\n {heading}\n

\n
\n {showTimeline && (\n
\n )}\n
    \n {info?.map((item: any, index: number) => {\n const content =\n typeof item === 'object' && item?.value ? item.value : item;\n return (\n \n \n {content}\n \n );\n })}\n
\n
\n
\n );\n};\n","import { BestReview } from '../types/pages/tour';\nimport { ConvertPublicUrlToGsUrl } from './ConvertPublicUrlToGsUrl';\nimport { useAuthContext } from './context/authContext';\n\nexport const useTransformReview = () => {\n const { user }: any = useAuthContext();\n\n const transformReview = async (review: any, reviews: any[]): Promise => {\n const createdAtISO = review?.created_at;\n let dateAndTime = 'N/A';\n\n if (createdAtISO) {\n if (typeof createdAtISO === 'string') {\n // ISO format\n dateAndTime = new Date(createdAtISO).toLocaleDateString('en-US', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit'\n });\n } else if (createdAtISO?._seconds) {\n // Firebase Timestamp format\n const dateFromSeconds = new Date(createdAtISO._seconds * 1000);\n dateAndTime = dateFromSeconds.toLocaleDateString('en-US', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit'\n });\n }\n }\n\n const fullName =\n review?.traveller?.split(' ') || review?.name?.split(' ') || [];\n const firstName = fullName[0] || 'Anonymous';\n const lastName = fullName[1] || '';\n const displayName =\n lastName.toLowerCase() !== 'undefined'\n ? `${firstName} ${lastName}`\n : firstName;\n\n let userGsUrl = '';\n\n if (user?.photoURL) {\n if (user?.uid === review?.user_id) {\n localStorage.setItem('user_gs_url', review.gs_url);\n } else {\n const userHasReviewed = reviews.some(\n (r: any) => user?.uid === r?.user_id\n );\n if (!userHasReviewed && user?.photoURL) {\n userGsUrl = await ConvertPublicUrlToGsUrl(user.photoURL);\n localStorage.setItem('user_gs_url', userGsUrl);\n }\n }\n }\n\n return {\n rating: review?.rating,\n time: dateAndTime,\n name:\n review?.review?.user_id && review?.review?.user_id === user?.uid\n ? user?.displayName\n : displayName || 'Anonymous',\n review: review?.review || 'No review provided.',\n image:\n review?.user_id === user?.uid ? user?.photoURL : review?.user_image,\n reviewId: review?.id,\n userId: review?.user_id,\n gs_url: review.gs_url || userGsUrl\n };\n };\n\n return { transformReview };\n};\n\nexport const transformBestReview = (review: any): BestReview => ({\n id: review.id || '',\n title: review.title || '',\n review: review.review || 'No review provided.',\n traveller: review.traveller || review.name || 'Anonymous',\n rating: review.rating || 0,\n source: review.source || '',\n date: new Date(review.created_at).toLocaleDateString('en-US', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit'\n }),\n created_at: review.created_at || ''\n});\n","import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport client from '../../apollo-client';\nimport TourBasics from '../../components/TourPage/TourBasics';\nimport Included from '../../components/TourPage/Included';\nimport { PaxContext } from '../../utils/context/checkoutContext';\nimport AddReviewModal from '../../components/Attraction/AddReviewModal';\nimport { getCurrentToken } from '../../utils/getCurrentToken';\nconst Link = dynamic(() => import('next/link'));\nimport Head from 'next/head';\nimport { useRouter } from 'next/router';\nimport Image from 'next/image';\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport SwiperCore, { Navigation } from 'swiper';\nimport 'swiper/css';\nimport 'swiper/css/navigation';\nimport 'swiper/css/pagination';\nSwiperCore.use([Navigation]);\nimport { view_item } from '../../utils/googleTransaction';\nconst RelatedTours = dynamic(\n () => import('../../components/TourPage/RelatedTours')\n);\nconst Newsletter = dynamic(() => import('../../layouts/Newsletter/Newsletter'));\nimport { useUpdateQueryParams } from '../../utils/useUpdateQueryParams';\nimport { useSearchContext } from '../../utils/context/searchContext';\nimport { GetServerSideProps } from 'next';\nimport ShareButton from '../../shared-components/AttractionCard/ShareButton';\nimport Footer from '../../layouts/Footer/footer';\nimport { WhatYouWillSeeSection } from '../../components/TourPage/WhatYouWillSeeSection';\nimport { NeedToKnow } from '../../components/TourPage/NeedToKnow';\nimport { BOOKING_DATA } from '../../api/fetch_user_details';\nconst ReviewsSection = dynamic(\n () => import('../../components/Attraction/Reviews')\n);\nimport { Review } from '../[slug]/[slug2]';\nimport axios from 'axios';\nimport { useAuthContext } from '../../utils/context/authContext';\nimport { BestReview, Product } from '../../types/pages/tour';\nimport dynamic from 'next/dynamic';\nimport { replaceTripshepherdWithSeeSight } from '../../utils/trip-sheppered-text';\nimport scrollToElement from '../../utils/scrollIntoView';\nimport { useMediaQuery } from '../../hooks/mediaQuery';\nimport UPDATE_BOOKING_REVIEW_STATUS, {\n FETCH_BOOKING_REVIEW\n} from '../../api/updateBookingReviewStatus';\nimport {\n transformBestReview,\n useTransformReview\n} from '../../utils/transformReview';\nimport { toast } from 'react-toastify';\nimport { useLazyQuery, useMutation } from '@apollo/client';\nconst PhotosHeader = dynamic(\n () => import('../../components/TourPage/PhotosHeader')\n);\nconst DynamicMap = dynamic(\n () => import('../../components/TourPage/ProductAttractionsMap'),\n { ssr: false }\n);\ninterface ButtonArray {\n id: string;\n label: string;\n}\n\ninterface TourPageProps {\n product: Product;\n initialReviews: Review[];\n modifiedBestReview: BestReview;\n modifiedSecondMostPositiveReview: Review;\n modifiedPositiveReview: Review;\n totalCount: number;\n count: number;\n}\n\ninterface BookingData {\n boatnew_booking: Array<{\n tour_date: string;\n product: {\n id: string;\n strapi: {\n id: string;\n };\n cities_products: Array<{\n city: {\n name: string;\n id: string;\n strapi_city: {\n id: string;\n };\n };\n }>;\n };\n customer: {\n contact_name: string;\n email: string;\n };\n }>;\n}\nconst TourPage = ({\n product,\n initialReviews,\n modifiedBestReview,\n modifiedSecondMostPositiveReview,\n modifiedPositiveReview,\n totalCount,\n count\n}: TourPageProps) => {\n const router = useRouter();\n\n const { transformReview } = useTransformReview();\n\n const updateQueryParams = useUpdateQueryParams();\n\n const { selectedCategory, searchQuery }: any = useSearchContext();\n\n const mediaQuery = useMediaQuery(768);\n\n //@ts-ignore\n const { updateTour, currency, updateCurrency } = useContext(PaxContext);\n\n // State to store the selected price based on the current currency\n const [selectedPrice, setSelectedPrice] = useState<\n Price | null | undefined\n >();\n\n const [showReviewModal, setShowReviewModal] = useState(false);\n\n const [reviewFormData, setReviewFormData] = useState({\n name: '',\n email: '',\n rating: 0,\n reviewTitle: '',\n reviewText: '',\n tourDate: '',\n productId: '',\n cityId: ''\n });\n const [bookingId, setBookingId] = useState('');\n\n const [isValidBooking, setIsValidBooking] = useState(false);\n\n const [bookingCheckComplete, setBookingCheckComplete] = useState(false);\n\n const [bookingErrorMessage, setBookingErrorMessage] = useState('');\n\n const [isModalOpen, setIsModalOpen] = useState(false);\n\n const [selectedReviewData, setSelectedReviewData] = useState(\n null\n );\n\n const [triggerReviewStatus, { data }] = useMutation(\n UPDATE_BOOKING_REVIEW_STATUS\n );\n\n const [getBookingReviewStatus, { data: bookingReviewData }] =\n useLazyQuery(FETCH_BOOKING_REVIEW);\n\n const [isEditReview, setIsEditReview] = useState(false);\n\n useEffect(() => {\n const { id } = router.query;\n if (id && typeof id === 'string') {\n setBookingId(id);\n checkBookingValidity(id);\n } else {\n setBookingCheckComplete(true);\n }\n }, [router.query]);\n\n const checkBookingValidity = async (bookingId: string) => {\n try {\n const response = await client.query({\n query: BOOKING_DATA,\n variables: { bookingId }\n });\n\n const bookingData: BookingData = response.data;\n\n /* const status = await getBookingReviewStatus({\n variables: {\n id: bookingId\n }\n }); */\n\n if (bookingData.boatnew_booking.length === 0) {\n setIsValidBooking(false);\n setBookingErrorMessage(`Booking ID ${bookingId} does not exist.`);\n } else {\n const booking = bookingData.boatnew_booking[0];\n\n if (booking.product.id === product.id) {\n setIsValidBooking(true);\n\n // Pre-fill review form data\n setReviewFormData({\n name: booking.customer.contact_name || '',\n email: booking.customer.email || '',\n rating: 0,\n reviewTitle: '',\n reviewText: '',\n tourDate: booking.tour_date || '',\n productId: product.id,\n cityId:\n booking.product.cities_products[0]?.city.strapi_city.id || ''\n });\n\n // Open review modal\n setShowReviewModal(true);\n\n // Scroll to reviews section\n setTimeout(() => {\n const reviewsSection = document.getElementById('important-info');\n if (reviewsSection) {\n reviewsSection.scrollIntoView({\n behavior: 'smooth',\n block: 'start'\n });\n }\n }, 100);\n } else {\n setIsValidBooking(false);\n setBookingErrorMessage(\n `Booking ID ${bookingId} is not valid for this product.`\n );\n }\n }\n } catch (error) {\n console.error('Error checking booking validity:', error);\n setIsValidBooking(false);\n setBookingErrorMessage('An error occurred while checking the booking.');\n } finally {\n setBookingCheckComplete(true);\n }\n };\n\n // Recalculate the selected price whenever the currency changes\n useEffect(() => {\n if (product.private) updateCurrency('USD');\n else updateCurrency(currency);\n\n // Ensure productPrices is an array before calling find\n const price = Array.isArray(product?.productPrices)\n ? product.productPrices.find(price => price.currency === currency)\n : null;\n\n // Set the selected price or set it to null if not found\n setSelectedPrice(price);\n }, [currency, product?.productPrices]);\n\n const buttonArray: ButtonArray[] = [\n { id: 'need-to-know', label: 'Need to know' },\n { id: 'tour-highlight', label: 'Tour Highlight' },\n { id: 'map', label: 'Map' }\n ];\n\n const [activeButton, setActiveButton] = useState(buttonArray[0].id);\n\n const descriptionRef = useRef(null);\n const footerRef = useRef(null);\n\n const handleButtonClick = (id: string) => {\n const section = document.getElementById(id);\n if (section) {\n section.scrollTop = 0;\n }\n setActiveButton(id);\n };\n // Remove the #reviews fragment from the URL which was added when user redirects from landing page\n useEffect(() => {\n if (router.asPath.includes('#reviews')) {\n const cleanPath = router.asPath.split('#')[0];\n router.replace(cleanPath, undefined, { shallow: true });\n window.scrollTo(0, 0);\n }\n }, [router]);\n\n useEffect(() => {\n view_item({\n item_id: product?.id,\n item_name: product?.name,\n item_price: JSON.stringify(selectedPrice?.prices.adult),\n currency_code: currency\n });\n }, []);\n const scrollToSection = (elementId: string, offset: number = 0) => {\n const element = document.getElementById(elementId);\n if (element) {\n const elementPosition = element.getBoundingClientRect().top;\n const offsetPosition = elementPosition + window.pageYOffset + offset;\n\n window.scrollTo({\n top: offsetPosition,\n behavior: 'smooth'\n });\n }\n };\n\n //@ts-ignore\n const reviewsAggregate = product?.pageContent?.reviews_aggregate;\n\n // Calculate the review statistics safely\n const reviewCount: number = reviewsAggregate?.aggregate?.count || 0;\n const totalRating: number = reviewsAggregate?.aggregate?.sum?.rating || 0;\n const averageRating: number =\n reviewCount > 0 ? parseFloat((totalRating / reviewCount).toFixed(1)) : 0;\n const [bestReview, setBestReview] = useState();\n const [secondMostPositiveReview, setSecondMostPositiveReview] =\n useState();\n const [positiveReview, setPositiveReview] = useState();\n\n const [reviews, setReviews] = useState(initialReviews);\n const [selectedRating, setSelectedRating] = useState('');\n const [currentPage, setCurrentPage] = useState(1);\n const [reviewsCount, setReviewsCount] = useState(count);\n const [totalReviewsCount, setTotalReviewsCount] = useState(totalCount);\n\n const [loader, setLoader] = React.useState(false);\n const { user }: any = useAuthContext();\n const [showPax, setShowPax] = useState(false);\n const [isPaxVisible, setIsPaxVisible] = useState(false);\n const paxRef = useRef(null);\n const itemsPerPage = 5;\n\n useEffect(() => {\n // Reset states when the route changes\n setShowPax(false);\n setIsPaxVisible(false);\n }, [router.query.slug]);\n\n useEffect(() => {\n const transformAllReviews = async () => {\n if (initialReviews) {\n const updatedReviews = await Promise.all(\n initialReviews.map(async (review: any) => {\n return await transformReview(review, reviews);\n })\n );\n setReviews(updatedReviews);\n }\n\n if (modifiedBestReview) {\n setBestReview(transformBestReview(modifiedBestReview));\n }\n\n // Process secondMostPositiveReview\n if (modifiedSecondMostPositiveReview) {\n const transformedSecondMostPositiveReview = await transformReview(\n modifiedSecondMostPositiveReview,\n reviews\n );\n setSecondMostPositiveReview(transformedSecondMostPositiveReview);\n }\n\n // Process positiveReview\n if (modifiedPositiveReview) {\n const transformedPositiveReview = await transformReview(\n modifiedPositiveReview,\n reviews\n );\n setPositiveReview(transformedPositiveReview);\n }\n };\n transformAllReviews();\n }, []);\n\n const fetchReviews = async () => {\n try {\n setLoader(true);\n const response = await axios.get(\n `${\n process.env.NEXT_PUBLIC_FIREBASE_WEBSITE_CONNECTION\n }/product-review/${product.id}?sortBy=created_at&rating=${\n selectedRating === 'all-stars' ? '' : selectedRating\n }&sortOrder=desc&page=${currentPage}&limit=${itemsPerPage}`\n );\n\n // Process main reviews\n if (response?.data?.reviews) {\n const updatedReviews = await Promise.all(\n response.data.reviews.map(async (review: any) => {\n return await transformReview(review, reviews);\n })\n );\n setReviews(updatedReviews);\n setReviewsCount(response.data.reviewsCount || 0);\n setTotalReviewsCount(response.data.totalReviewsCount || 0);\n }\n } catch (error) {\n console.error('Error fetching reviews:', error);\n }\n setLoader(false);\n };\n\n useEffect(() => {\n if (selectedRating !== '' || currentPage !== 1) {\n fetchReviews();\n }\n }, [selectedRating, currentPage, user]);\n\n const updateTourContext = () => {\n updateTour({\n tour: product?.name,\n //@ts-ignore\n tourId: product?.id,\n tourImage: product?.pageContent?.carousel?.map(\n (item: any) => item.url\n )[0],\n private: product?.private,\n ratingCount: reviewCount,\n ratingAvg: averageRating,\n guest: reviewCount,\n message: product?.cardMedia,\n city: product?.pageContent?.city,\n rezdyId: product?.RezdyId\n });\n };\n\n const productSchema = {\n '@context': 'http://schema.org',\n '@type': 'Product',\n name: product?.name,\n image: product?.pageContent?.carousel[0]?.url,\n description: product?.pageContent?.meta_description,\n\n offers: {\n '@type': 'Offer',\n priceCurrency: currency,\n price: product?.price,\n availability: 'InStock',\n priceValidUntil: '2023-12-31',\n seller: {\n '@type': 'Organization',\n name: 'See Sight Tours'\n }\n },\n hasMerchantReturnPolicy: {\n '@type': 'MerchantReturnPolicy',\n returnFees: 'Free Cancellation 24 hours in advance',\n returnPolicyCountry: 'CA'\n },\n aggregateRating: {\n '@type': 'AggregateRating',\n ratingValue: 4.9,\n bestRating: 5,\n ratingCount: reviewCount ? reviewCount : 10\n },\n review: {\n '@type': 'Review',\n reviewRating: {\n '@type': 'Rating',\n ratingValue: 5,\n bestRating: 5\n },\n author: {\n '@type': 'Person',\n name: 'Jane'\n },\n datePublished: '2023-06-17'\n }\n };\n const tourSchema = {\n '@context': 'https://schema.org',\n '@type': 'TouristTrip',\n name: product?.name,\n description: product?.pageContent?.short_description,\n itinerary: product?.attractions?.map((item: any) => {\n return {\n '@type': 'TouristAttraction',\n name: item?.name,\n description: item?.cardSnippet,\n image: item?.heroMedia?.length > 0 ? item?.heroMedia[0].url : ''\n };\n }),\n touristType: 'Sightseeing',\n\n offers: {\n '@type': 'Offer',\n url: product?.pageContent?.canonical,\n price: product?.price,\n priceCurrency: currency,\n availability: 'https://schema.org/InStock',\n validFrom: '2023-07-01',\n validThrough: '2023-12-31',\n seller: {\n '@type': 'Organization',\n name: 'See Sight Tours'\n }\n }\n };\n const trackButtonCall = async () => {\n try {\n if (typeof window !== 'undefined' && window.gtag) {\n await window.gtag('event', 'button_click', {\n category: 'interaction',\n action: 'button click',\n label: 'mobile-check-dates'\n });\n }\n } catch (error) {\n console.error('Error tracking button click:', error);\n }\n };\n const MOBILE_THRESHOLD = 768;\n\n const isMobile = () =>\n typeof window !== 'undefined' && window.innerWidth >= MOBILE_THRESHOLD;\n\n const [dropdownStates, setDropdownStates] = useState(\n Array(6).fill(isMobile())\n );\n const [openMenuIndex, setOpenMenuIndex] = useState(null);\n\n const handleOpenMenu = (index: string) => {\n if (openMenuIndex !== index) {\n setOpenMenuIndex(index);\n }\n };\n\n const handleCloseMenu = () => {\n setOpenMenuIndex(null);\n };\n useEffect(() => {\n if (typeof window !== 'undefined') {\n isMobile && setDropdownStates(Array(6).fill(isMobile()));\n }\n }, [typeof window !== 'undefined' ? window.innerWidth : null]);\n\n useEffect(() => {\n const handleRouteChange = () => {\n const delay = 2000;\n setTimeout(() => {\n setDropdownStates(Array(dropdownStates?.length).fill(false));\n }, delay);\n };\n router.events.on('routeChangeStart', handleRouteChange);\n return () => {\n router.events.off('routeChangeStart', handleRouteChange);\n };\n }, [router.events, dropdownStates]);\n const extractMaxPeople = (tourIncludes: any) => {\n let maxPeople = 7; // Default value\n const regex = /(\\d+)\\s*(people|guests)/i;\n\n tourIncludes.forEach((item: any) => {\n const value = item.value ? item.value : item;\n const match = value.match(regex);\n if (match) {\n maxPeople = parseInt(match[1]);\n }\n });\n return maxPeople;\n };\n const maxPeople = useMemo(\n () => extractMaxPeople(product?.pageContent?.tour_includes || []),\n [product]\n );\n\n const desc = product?.pageContent?.long_description?.trim();\n let timeline;\n if (desc?.includes('\\n\\n')) {\n timeline = desc.split('\\n\\n');\n } else if (desc?.includes('\\n')) {\n timeline = desc?.split('\\n');\n } else if (desc?.includes('

')) {\n timeline = desc.split('

');\n } else {\n timeline = [desc];\n }\n useEffect(() => {\n if (showPax) {\n scrollToElement('mobile-pax');\n }\n }, [showPax]);\n\n const reviewState = {\n average: Number(averageRating),\n total: reviewCount\n };\n\n // Add useEffect to handle scroll visibility\n useEffect(() => {\n if (!showPax) return;\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n setIsPaxVisible(entry.isIntersecting);\n },\n {\n threshold: 0.1\n }\n );\n\n if (paxRef.current) {\n observer.observe(paxRef.current);\n }\n\n return () => {\n observer.disconnect();\n };\n }, [showPax]);\n\n return (\n <>\n \n \n \n {`${product?.pageContent?.title}`}\n \n \n \n \n \n \n {router.isFallback ? (\n
\n \n \n \n \n Loading...\n
\n ) : (\n <>\n
\n
\n router.push('/')}\n >\n \n Back to Tour Listing\n \n
\n \n
\n
\n
\n
\n
\n

\n {product?.name}{' '}\n

\n
\n {' '}\n handleOpenMenu(product.id)}\n onClose={handleCloseMenu}\n slug={product.slug}\n />\n
\n
\n\n {reviewCount > 0 && (\n
\n \n
\n \n {averageRating}\n\n /\n 5\n
\n {\n scrollToSection('reviews-section', -100);\n }}\n className=\"text-black ml-1 underline hover:text-primary hover:font-semibold\"\n >{`${reviewCount} reviews`}
\n \n
\n )}\n\n
\n
\n \n
\n\n
\n

\n {product?.pageContent?.short_description}\n

\n
\n
\n
\n \n \n
\n
\n {product?.pageContent?.tour_includes?.length > 0 && (\n \n )}\n
\n\n
\n {product?.attractions && (\n \n )}\n
\n\n
\n {timeline && (\n \n )}\n
\n\n
\n

\n Tour Itineraries\n

\n \n
\n\n
\n {product?.pageContent?.important_info?.length > 0 && (\n
\n \n Important Information\n \n
\n {product?.pageContent?.important_info?.map(\n (item: any, index: number) => (\n

\n {`${\n typeof item === 'object' ? item.value : item\n }`}\n

\n )\n )}\n
\n
\n )}\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n \n
\n
\n\n {(!showPax || (showPax && !isPaxVisible)) && (\n
\n
\n From $\n \n {selectedPrice?.prices?.adult\n ? Number(selectedPrice?.prices?.adult)\n : Number(product?.price)}\n  \n {currency}\n \n
\n\n {\n trackButtonCall();\n if (!showPax) {\n setShowPax(true);\n setTimeout(() => {\n scrollToSection('mobile-pax', -60);\n }, 100);\n } else {\n scrollToSection('mobile-pax', -60);\n }\n }}\n >\n Check Dates\n \n
\n )}\n \n )}\n {showReviewModal && (\n setShowReviewModal(false)}\n initialData={reviewFormData}\n onSubmit={async (reviewData: any) => {\n try {\n let token = null;\n if (user) {\n token = await user.getIdToken(true);\n console.log('Firebase Token:', token);\n }\n\n const headers = {\n 'Content-Type': 'application/json',\n ...(token && { Authorization: token })\n };\n\n let response;\n\n if (token) {\n const authenticatedPayload = {\n rating: reviewData.rating,\n review: reviewData.review,\n ...(reviewFormData && {\n name: reviewFormData.name,\n email: reviewFormData.email,\n tourDate: reviewFormData.tourDate,\n cityId: reviewFormData.cityId,\n user_id: user?.uid\n }),\n productId: product.id,\n bookingId: bookingId,\n termsConditions: reviewData.termsConditions\n };\n\n response = await axios.post(\n `${process.env.NEXT_PUBLIC_FIREBASE_WEBSITE_CONNECTION}/product-review`,\n authenticatedPayload,\n { headers, timeout: 10000 }\n );\n } else {\n const unauthenticatedPayload = {\n bookingId: bookingId,\n productId: product.id,\n rating: reviewData.rating,\n review: reviewData.review,\n userName: reviewData.name || reviewFormData?.name\n };\n\n response = await axios.post(\n `${process.env.NEXT_PUBLIC_FIREBASE_WEBSITE_CONNECTION}/strapi-product-review`,\n unauthenticatedPayload,\n { headers, timeout: 10000 }\n );\n // triggerReviewStatus({\n // variables: {\n // id: bookingId,\n // status: 'WEBSITE_FEEDBACK'\n // }\n // });\n }\n\n if (\n response.data &&\n response.data.message === 'Review added successfully'\n ) {\n fetchReviews();\n setShowReviewModal(false);\n setBookingId('');\n toast.success('Your review has been submitted successfully!');\n console.log(\n 'Review submitted successfully!',\n response.data.reviewId\n );\n }\n } catch (error) {\n console.error('Full error details:', error);\n if (axios.isAxiosError(error)) {\n if (error.response?.status === 401) {\n console.log(\n 'Authentication failed. Please refresh and try again.'\n );\n } else {\n console.log(\n error.response?.data?.error || 'Failed to submit review'\n );\n }\n } else {\n console.log('Network error. Please check your connection.');\n }\n }\n }}\n id={product.id}\n fetchReviews={fetchReviews}\n setIsModalOpen={setIsModalOpen}\n reviews={reviews}\n setReviews={setReviews}\n selectedReviewData={selectedReviewData}\n setSelectedReviewData={setSelectedReviewData}\n isEditReview={isEditReview}\n setIsEditReview={setIsEditReview}\n />\n )}\n \n );\n};\n\ninterface Price {\n currency: string;\n prices: {\n adult: number;\n child: number;\n infant: number;\n };\n}\nexport interface RATINGCOUNT {\n 1: number;\n 2: number;\n 3: number;\n 4: number;\n 5: number;\n}\nexport const getServerSideProps: GetServerSideProps = async ({ params }) => {\n const { slug } = params as { slug: string };\n try {\n // Fetch product data\n const productRes = await fetch(\n `${process.env.NEXT_PUBLIC_FIREBASE_WEBSITE_CONNECTION}/products/${slug}?lang=en`\n );\n\n if (!productRes.ok) {\n console.error(`Failed to fetch product data for slug: ${slug}`);\n return { notFound: true };\n }\n\n const productData = await productRes.json();\n\n if (!productData.success || !productData.data) {\n console.error(`No product found for slug: ${slug}`);\n return {\n redirect: { destination: '/404', permanent: false }\n };\n }\n\n // Fetch reviews for the product\n const reviewsRes = await fetch(\n `${process.env.NEXT_PUBLIC_FIREBASE_WEBSITE_CONNECTION}/product-review/${productData.data.id}?sortBy=created_at&rating=5&sortOrder=desc&page=1&limit=5`\n );\n\n if (!reviewsRes.ok) {\n console.error(`Failed to fetch reviews for slug: ${slug}`);\n }\n const reviewsData = await reviewsRes.json();\n\n return {\n props: {\n product: replaceTripshepherdWithSeeSight(productData.data),\n initialReviews: reviewsData?.reviews || [],\n modifiedBestReview: reviewsData?.bestReview,\n modifiedSecondMostPositiveReview: reviewsData.secondMostPositiveReview,\n modifiedPositiveReview: reviewsData.positiveReview,\n count: reviewsData?.reviewsCount || 0,\n totalCount: reviewsData?.totalReviewsCount || 0\n }\n };\n } catch (error) {\n console.error('Error fetching product/review data:', error);\n return {\n redirect: { destination: '/404', permanent: false }\n };\n }\n};\n\nexport default TourPage;\n","import React, { useState, useEffect, useRef } from 'react';\nimport Image from 'next/image';\nimport { useRouter } from 'next/router';\nimport { useMediaQuery } from '../../hooks/mediaQuery';\n\ninterface ShareButtonProps {\n isOpen: boolean;\n onOpen: () => void;\n onClose: () => void;\n slug: string;\n}\n\nconst ShareButton: React.FC = ({\n isOpen,\n onOpen,\n onClose,\n slug\n}) => {\n const router = useRouter();\n const [isHovered, setIsHovered] = useState(false);\n const src = router.pathname.includes('/tours/')\n ? '/share-white-icon.svg'\n : '/share-button.svg';\n const menuRef = useRef(null);\n const mediaQuery = useMediaQuery(768);\n const [linkCopied, setLinkCopied] = useState(false);\n\n const handleButtonClick = (event: any) => {\n event.stopPropagation();\n\n if (mediaQuery) {\n navigator\n .share({\n title: 'Join me on a See Sight Tours adventure!',\n text: `I found this experience on See Sight Tours, want to go?`,\n url: `https://www.seesight-tours.com/tours/${slug}`\n })\n .catch(err => console.error('Error sharing:', err));\n } else {\n if (isOpen) {\n onClose();\n } else {\n onOpen();\n }\n }\n };\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (menuRef.current && !menuRef.current.contains(event.target as Node)) {\n onClose();\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [onClose]);\n\n const handleEmailClick = (event: any) => {\n event.stopPropagation();\n onClose();\n const mailtoLink = `mailto:?subject=Join me on a See Sight Tours adventure!&body=Check out this tour: https://www.seesight-tours.com/tours/${slug}`;\n window.location.href = mailtoLink;\n };\n\n const handleCopyLinkClick = (event: any) => {\n event.stopPropagation();\n const link = `https://www.seesight-tours.com/tours/${slug}`;\n navigator.clipboard.writeText(link).then(\n () => {\n setLinkCopied(true);\n setTimeout(() => {\n setLinkCopied(false);\n onClose();\n }, 2000);\n },\n err => {\n console.error('Could not copy text: ', err);\n }\n );\n };\n\n return (\n
\n setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n \n \n\n {isOpen && !mediaQuery && (\n
\n
\n\n \n
\n \n Email\n
\n
\n\n \n
\n \n {linkCopied ? 'Link Copied' : 'Copy link'}\n
\n
\n \n )}\n \n );\n};\n\nexport default ShareButton;\n","import React from 'react';\ninterface LeftSwipperArrowsProps {\n isFirstSlide: boolean;\n}\ninterface RightSwipperArrowsProps {\n isLastSlide: boolean;\n}\nexport const LeftSwipperArrows = ({ isFirstSlide }: LeftSwipperArrowsProps) => {\n return (\n
\n {isFirstSlide ? (\n \n \n \n \n \n ) : (\n \n \n \n \n )}\n
\n );\n};\nexport const RightSwipperArrows = ({\n isLastSlide\n}: RightSwipperArrowsProps) => {\n return (\n
\n {isLastSlide ? (\n \n \n \n \n \n ) : (\n \n \n \n \n )}\n
\n );\n};\n","interface Items {\n id: string;\n quantity: number;\n price?: number;\n variant: string;\n name: string;\n}\ninterface PurchaceCall {\n transaction_id: string;\n value: number;\n items: any;\n affiliation?: string;\n name: string;\n id: string;\n}\ninterface AddCart {\n value: number;\n items: any;\n affiliation?: string;\n name: string;\n id: string;\n}\ninterface ViewItem {\n item_id: string;\n item_name: string;\n item_price: string;\n currency_code: string;\n}\ninterface CARD extends ViewItem {\n quantity: number;\n}\nconst googleAnalyticsTransaction = async (data: PurchaceCall) => {\n const { items, name, id, ...rest } = data;\n const googleAnalyticsItems = [];\n\n items.map((ageGroup: any) => {\n if (ageGroup.count > 0) {\n googleAnalyticsItems.push({\n name,\n id,\n price: Number(ageGroup.price.split('$')[1]),\n quantity: ageGroup.count,\n variant: ageGroup.title\n });\n }\n });\n //@ts-ignore\n // @ts-ignore\n if (typeof window.gtag === 'function') {\n await window.gtag('event', 'purchase', {\n ...rest,\n currency: 'USD',\n items: googleAnalyticsItems\n });\n } else {\n console.error('gtag function is not available');\n }\n if (window !== undefined) {\n // @ts-ignore\n await window.fbq('track', 'Purchase', {\n currency: 'USD',\n value: rest.value\n });\n } else {\n console.error('fbq function is not available');\n }\n};\n\nexport const view_item = async (data: ViewItem) => {\n if (\n typeof window !== 'undefined' &&\n window.gtag &&\n typeof window.gtag === 'function'\n ) {\n await window.gtag('event', 'view_item', {\n ...data\n });\n } else {\n console.error('gtag function is not available');\n }\n};\n\nexport const add_to_cart = async (data: CARD) => {\n if (\n typeof window !== 'undefined' &&\n window.gtag &&\n typeof window.gtag === 'function'\n ) {\n await window.gtag('event', 'add_to_cart', {\n ...data\n });\n } else {\n console.error('gtag function is not available');\n }\n};\nexport const googleAnalyticsAddtoCart = async (\n data: AddCart,\n event: string\n) => {\n const { items, name, id, ...rest } = data;\n const googleAnalyticsItems = [];\n\n items.map((ageGroup: any) => {\n if (ageGroup.count > 0) {\n googleAnalyticsItems.push({\n name,\n id,\n price: Number(ageGroup.price.split('$')[1]),\n quantity: ageGroup.count,\n variant: ageGroup.title\n });\n }\n });\n //@ts-ignore\n // @ts-ignore\n const res =\n window !== undefined && typeof window.gtag === 'function'\n ? await window.gtag('event', event, {\n ...rest,\n currency: 'USD',\n items: googleAnalyticsItems\n })\n : console.error('gtag function is not available');\n\n if (window !== undefined) {\n // @ts-ignore\n await window.fbq('track', 'Purchase', {\n currency: 'USD',\n value: rest.value\n });\n } else {\n console.error('fbq function is not available');\n }\n};\nexport default googleAnalyticsTransaction;\n","import { useRouter } from 'next/router';\n\n// retaining search keyword whenever we change route on /tours and keep scrollY top to 20 avoid blinking repeatedly\nexport const useUpdateQueryParams = () => {\n const router = useRouter();\n\n const updateQueryParams = (\n newParams: Record,\n path: string = '/'\n ) => {\n // Construct new query object with existing and new parameters\n const currentParams = { ...router.query };\n\n // Convert all newParams values to strings or arrays of strings\n const updatedParams: Record = {};\n Object.keys(newParams).forEach(key => {\n const value = newParams[key];\n updatedParams[key] = Array.isArray(value)\n ? value.map(String)\n : String(value);\n });\n\n // Construct the new URL with updated query parameters\n const searchParams = new URLSearchParams(\n currentParams as Record\n );\n Object.keys(updatedParams).forEach(key => {\n const value = updatedParams[key];\n if (Array.isArray(value)) {\n value.forEach(v => searchParams.append(key, v));\n } else {\n searchParams.set(key, value);\n }\n });\n\n // Use the provided path or the default path\n const updatedUrl = `${path}?${searchParams.toString()}`;\n\n // Replace the current route with the updated URL\n router.replace(updatedUrl, undefined, { shallow: true });\n };\n\n return updateQueryParams;\n};\n","// extracted by mini-css-extract-plugin"],"names":["window","__NEXT_P","push","__webpack_require__","REVIEW_STATUS_ENUM","UPDATE_BOOKING_REVIEW_STATUS","gql","FETCH_BOOKING_REVIEW","GOOGLE_REVIEW","WEBSITE_FEEDBACK","PENDING","__webpack_exports__","Z","StyleDiv","styled","div","withConfig","TourPage_TourBasics","maxPeople","duration","mobile","name","param","durationInHours","durationInMinutes","formattedDuration","Number","isInteger","toFixed","showItems","icon","text","concat","key","includes","jsx_runtime","jsx","className","map","item","index","jsxs","length","Image","src","width","height","alt","span","DateAndPax","dynamic","Promise","all","e","then","bind","TourPage_Included","rezdyId","updateTourContext","privateTour","tourId","adult","infant","child","bestReview","city","slug","showPax","useRef","containerRef","stopPosition","setStopPosition","useState","useMediaQuery","useEffect","current","containerHeight","offsetHeight","Fragment","review","p","traveller","Rating","initialValue","disableFillHover","fillColor","emptyColor","readonly","SVGstyle","display","size","getTimeAgo","created_at","style","WhatYouWillSeeSection","product","isLastSlide","setIsLastSlide","isFirstSlide","setIsFirstSlide","swiperInstance","setSwiperInstance","prevRef","nextRef","slideTo","setTimeout","error","console","warn","h2","id","attractions","ref","LeftSwipperArrows","RightSwipperArrows","Swiper","modules","Navigation","spaceBetween","slidesPerView","onSlideChange","swiper","isBeginning","isEnd","onBeforeInit","params","navigation","prevEl","nextEl","onSwiper","grabCursor","breakpoints","attraction","url","heroMedia","SwiperSlide","Link","href","target","optimizeImageUrl","layout","objectFit","loading","h3","cardSnippet","slice","NeedToKnow","info","heading","showTimeline","ul","content","value","li","useTransformReview","user","useAuthContext","transformReview","reviews","createdAtISO","dateAndTime","Date","toLocaleDateString","year","month","day","_seconds","dateFromSeconds","fullName","split","firstName","lastName","displayName","toLowerCase","userGsUrl","photoURL","uid","user_id","localStorage","setItem","gs_url","userHasReviewed","some","r","ConvertPublicUrlToGsUrl","rating","time","image","user_image","reviewId","userId","transformBestReview","title","source","date","resolve","t","SwiperCore","use","RelatedTours","Newsletter","ReviewsSection","PhotosHeader","DynamicMap","ssr","_slug_","reviewsAggregate","selectedPrice","timeline","initialReviews","modifiedBestReview","modifiedSecondMostPositiveReview","modifiedPositiveReview","totalCount","count","router","useRouter","useUpdateQueryParams","selectedCategory","searchQuery","useSearchContext","updateTour","currency","updateCurrency","useContext","PaxContext","setSelectedPrice","showReviewModal","setShowReviewModal","reviewFormData","setReviewFormData","email","reviewTitle","reviewText","tourDate","productId","cityId","bookingId","setBookingId","isValidBooking","setIsValidBooking","bookingCheckComplete","setBookingCheckComplete","bookingErrorMessage","setBookingErrorMessage","isModalOpen","setIsModalOpen","selectedReviewData","setSelectedReviewData","triggerReviewStatus","data","useMutation","getBookingReviewStatus","bookingReviewData","useLazyQuery","isEditReview","setIsEditReview","query","checkBookingValidity","response","client","BOOKING_DATA","variables","bookingData","boatnew_booking","booking","customer","contact_name","tour_date","cities_products","strapi_city","reviewsSection","document","getElementById","scrollIntoView","behavior","block","private","price","Array","isArray","productPrices","find","activeButton","setActiveButton","descriptionRef","footerRef","asPath","cleanPath","replace","undefined","shallow","scrollTo","view_item","item_id","item_name","item_price","JSON","stringify","prices","currency_code","scrollToSection","elementId","offset","element","elementPosition","getBoundingClientRect","top","offsetPosition","pageYOffset","pageContent","reviews_aggregate","reviewCount","aggregate","totalRating","sum","averageRating","parseFloat","setBestReview","secondMostPositiveReview","setSecondMostPositiveReview","positiveReview","setPositiveReview","setReviews","selectedRating","setSelectedRating","currentPage","setCurrentPage","reviewsCount","setReviewsCount","totalReviewsCount","setTotalReviewsCount","loader","setLoader","React","setShowPax","isPaxVisible","setIsPaxVisible","paxRef","transformAllReviews","updatedReviews","transformedSecondMostPositiveReview","transformedPositiveReview","fetchReviews","axios","get","process","itemsPerPage","tour","tourImage","carousel","ratingCount","ratingAvg","guest","message","cardMedia","RezdyId","productSchema","description","meta_description","offers","priceCurrency","availability","priceValidUntil","seller","hasMerchantReturnPolicy","returnFees","returnPolicyCountry","aggregateRating","ratingValue","bestRating","reviewRating","author","datePublished","tourSchema","short_description","itinerary","touristType","canonical","validFrom","validThrough","trackButtonCall","gtag","category","action","label","isMobile","innerWidth","dropdownStates","setDropdownStates","fill","openMenuIndex","setOpenMenuIndex","handleOpenMenu","handleRouteChange","events","on","off","extractMaxPeople","regex","tourIncludes","forEach","match","parseInt","useMemo","tour_includes","desc","long_description","trim","scrollToElement","reviewState","average","total","observer","IntersectionObserver","entry","isIntersecting","threshold","observe","disconnect","Head","meta","link","rel","replaceTripshepherdWithSeeSight","script","type","dangerouslySetInnerHTML","__html","isFallback","role","svg","aria-hidden","viewBox","xmlns","path","d","onClick","media","productName","productSlug","cardMessage","h1","ShareButton","isOpen","onOpen","onClose","TourBasics","Included","shortDescription","longDescription","bookingCutOffTime","booking_cutoff","coordinates","important_info","relatedProducts","Footer","button","AddReviewModal","initialData","onSubmit","reviewData","token","getIdToken","log","headers","Authorization","authenticatedPayload","termsConditions","post","timeout","unauthenticatedPayload","userName","toast","success","isAxiosError","status","isHovered","setIsHovered","pathname","menuRef","mediaQuery","linkCopied","setLinkCopied","handleClickOutside","contains","event","addEventListener","removeEventListener","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","stopPropagation","navigator","share","catch","err","onMouseEnter","onMouseLeave","quality","mailtoLink","location","clipboard","writeText","rect","x","y","rx","transform","stroke","stroke-miterlimit","stroke-linecap","stroke-linejoin","circle","cx","cy","googleAnalyticsTransaction","items","rest","googleAnalyticsItems","ageGroup","quantity","variant","fbq","add_to_cart","googleAnalyticsAddtoCart","ZP","newParams","currentParams","updatedParams","Object","keys","String","searchParams","URLSearchParams","v","append","set","updatedUrl","toString"],"sourceRoot":""}